#include <bits/stdc++.h>
using namespace std;
int n,m,x,y;
char f[101][101];
bool vis[101][101];
int dx[4]={1,1,-1,0},
    dy[4]={-1,0,0,1};

bool flag=0;
void dfs(int x,int y){
    if (flag) return;
    if (x==n-1 && y==m-1) {
        flag = true;
        return;
    }
    for (int i=0;i<4;i++){
        int bx = x + dx[i];
        int by = y + dy[i];
        if (bx >= n || bx < 0 || by >= m || by < 0) continue;
        if (f[bx][by]=='#') continue;
        if (vis[bx][by]) continue;
        vis[bx][by] = 1;
        dfs(bx,by);
        vis[bx][by] = 0;
    }
}
int main(){
    ios :: sync_with_stdio(false);
    cin>>n>>m;
    for (int i=0;i<n;i++){
        for (int j=0;j<m;j++){
            cin>>f[i][j];
        }
    }
    vis[0][0]=1;
    dfs(0,0);
    if (flag) {
        cout<<"Yes";
    }
    else {
        cout<<"No";
    }
    return 0;
}
